1. Field of the Invention
The invention relates generally to load balancing I/O operations transferred to a storage system from a computer over multiple paths and more specifically relates to load balancing the distribution of I/O operations from a computer system to a storage system over multiple communication paths based on the transfer speed of the communication paths.
2. Related Patents
This patent is related to commonly owned U.S. Pat. No. 7,093,265 entitled METHOD AND APPARATUS FOR PROVIDING HIGHLY-TRANSPARENT, HOST-BASED MULTI-PATHING SUPPORT which is hereby incorporated by reference.
3. Discussion of Related Art
Storage systems continue to grow ever larger and faster as applications for storage demand higher performance and capacity. In one aspect of enhancing performance and reliability, computer systems may be coupled to a storage system via multiple paths. A multi-path driver may be provided to address the problem of selecting from among multiple paths to a storage device for transfer of I/O operations therebetween. A multiple-path driver, such as LSI Corporation's Multiple-Path-Proxy (MPP) driver architecture, creates a virtual storage device (or virtual data path) for each storage volume and hides the physical storage devices and data paths from the operating system and application programs. The physical data access paths are only visible to the MPP driver and an appropriate administrator application. The rest of the operating system and applications see only the virtual data paths. Details of the MPP driver architecture are discussed in LSI Corporation's above identified, commonly owned, co-pending patent applications.
When an I/O request is directed to a virtual device defined by the MPP, the MPP driver selects a physical path to the storage device and routes the I/O operation(s) for the request to the selected physical path to complete the I/O request. If a selected physical data path fails or previously failed, the MPP driver may re-route I/O operations for the logical volume through any of the other available physical data paths.
In addition, the multiple paths may be used in parallel to queue I/O operations from one or more computers systems for processing by the storage system. Thus an I/O request from a computer system may be transferred over any of the available multiple paths. Use of multiple-paths between a host system and a storage device therefore improves both performance and reliability. Reliability is improved in that if a physical path fails, the host system (i.e., the MPP driver) may use other physical paths to access data. Performance is improved in that the host may perform I/O load balancing by distributing the I/O operations for one or more I/O requests through multiple physical paths. The operations may therefore be completed using parallel operation of multiple paths.
Presently known load balancing techniques applied to such a multi-path storage environment are simplistic. For example, a simple “round robin” load balancing approach to distribute requests over a plurality of identical paths is adequate since the paths are all identical. However, if the multiple paths are not homogenous in their transfer speeds or other performance metrics, the aggregate performance using such a simplistic round robin technique devolves to the performance of the path with the lowest performance since other operations to complete a request may have to await completion of an operation on the slower communication path(s).
Thus it is an ongoing challenge to distribute I/O operations from a computer system to a storage device over multiple paths where the paths are not homogenous with respect to performance metrics.